package com.HuiShou.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.http.converter.ResourceHttpMessageConverter;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ClassifyConfig {

    /**
     * 配置并返回一个支持文件上传的 RestTemplate 实例。
     * 该实例添加了 ByteArrayHttpMessageConverter、ResourceHttpMessageConverter 和 FormHttpMessageConverter，
     * 以支持多部分表单数据的传输。
     *
     * @return 配置好的 RestTemplate 实例
     */
    @Bean(name = "classifyRestTemplate")
    public RestTemplate restTemplate() {
        // 创建一个 RestTemplate 实例，用于执行 HTTP 请求。
        RestTemplate restTemplate = new RestTemplate();

        // 添加 ByteArrayHttpMessageConverter，用于处理字节数组类型的消息转换。
        restTemplate.getMessageConverters().add(new ByteArrayHttpMessageConverter());

        // 添加 ResourceHttpMessageConverter，用于处理资源类型（如文件）的消息转换。
        restTemplate.getMessageConverters().add(new ResourceHttpMessageConverter());

        // 添加 FormHttpMessageConverter，用于处理表单数据类型的消息转换。
        restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
        return restTemplate;
    }
}
